//#include <stdio.h>
//
//long long gcd(long long a, long long b) 
//{
//    while (b != 0) 
//    {
//        long long temp = a % b;
//        a = b;
//        b = temp;
//    }
//    return a;
//}
//
//int main() 
//{
//    int T;
//    scanf_s("%d", &T);
//    while (T--) 
//    {
//        long long x, y, a, b, c, d;
//        scanf_s("%lld %lld %lld %lld %lld %lld", &x, &y, &a, &b, &c, &d);
//        long long g1 = gcd(c, d);
//        long long g2 = gcd(a, b);
//        if (x % g1 == 0 && y % g2 == 0)
//        {
//            printf("YES\n");
//        }
//        else
//        {
//            printf("NO\n");
//        }
//    }
//    return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//
//int main() 
//{
//    int n, q;
//    scanf("%d %d", &n, &q);
//
//    long long* a = (long long*)malloc(n * sizeof(long long));
//    for (int i = 0; i < n; i++)
//    {
//        scanf("%lld", &a[i]);
//    }
// 
//    long long* prefix = (long long*)malloc((n + 1) * sizeof(long long));
//    prefix[0] = 0;
//    for (int i = 1; i <= n; i++) 
//    {
//        prefix[i] = prefix[i - 1] + a[i - 1];
//    }
//
//    while (q--) 
//    {
//        int l, r;
//        scanf_s("%d %d", &l, &r);
//        long long ans = prefix[r] - prefix[l - 1];
//        printf("%lld\n", ans);
//    }
//
//    free(a);
//    free(prefix);
//
//    return 0;
//}


#include <stdio.h>
#include <stdlib.h>

int main() {
    int n, m;
    scanf_s("%d %d", &n, &m);

    long long* a = (long long*)malloc(n * sizeof(long long));
    for (int i = 0; i < n; i++)
    {
        scanf_s("%lld", &a[i]);
    }

    long long* diff = (long long*)calloc(n + 1, sizeof(long long));

    while (m--) 
    {
        int l, r;
        long long k;
        scanf_s("%d %d %lld", &l, &r, &k);
        diff[l - 1] += k;
        if (r < n) 
        {
            diff[r] -= k;
        }
    }

    long long current = 0;
    for (int i = 0; i < n; i++)
    {
        current += diff[i];
        a[i] += current;
    }

    for (int i = 0; i < n; i++)
    {
        printf("%lld ", a[i]);
    }
    printf("\n");

    free(a);
    free(diff);

    return 0;
}